package com.demo.afternoon;

/**
 * @ClassName 反射3
 * @Description TODO
 * @Author tianqinglong
 * @Date 19:14 2022/7/12
 * @Version 1.0
 **/
public class 反射3 {

        static {
            System.out.println("Main类被加载");

        }

        public static void main(String[] args) throws ClassNotFoundException {
            // 1.主动引用
            //Son son = new Son();
            /**
             * 运行结果 Main类被加载 父类被加载了 子类被加载了
             */

            //反射也会产生主动调用
            //Class.forName("com.test5.Son");
            /**
             * 运行结果 Main类被加载 父类被加载了 子类被加载了
             */

            //不会产生类的引用方法
            //System.out.println(Son.b);
            /**
             * 运行结果 Main类被加载 父类被加载了 2
             */

            //Son[] array=new Son[5];
            /**
             * 运行结果 Main类被加载
             */

            System.out.println(Son.M);
            /**
             * 运行结果 Main类被加载  1
             */
        }
    }

    class Father {
        static int b = 2;

        static {
            System.out.println("父类被加载了");
        }

    }

    class Son extends Father {
        static {
            System.out.println("子类被加载了");
            m = 300;
        }
        static int m = 100;
        static final int M = 1;
    }

